package com.smedi.ismedi.constructionproject.core.domain.service;

import com.smedi.ismedi.constructionproject.core.application.command.ProjectAssignmentCommand;
import com.smedi.ismedi.constructionproject.core.domain.aggregatemodel.ProjectAssignment;

import java.util.List;

/**
 * @Author: xulinjun
 * @Date: 2021-6-8 11:08
 */
public interface ProjectAssignmentDomainService {
    ProjectAssignment saveAssignment(ProjectAssignment data);

    Boolean duplicateAssignment(Long personId, Long projectId, Long projectOrganizationId);

    void deleteAssignment(Long projectAssignmentId);

    void doDeleteByPersonIdAndProjectId(Long personId,Long projectId);

    void doDeleteByPersonId(Long personId);

    Boolean validateProjectOrganizationHasAssignment(Long projectOrganizationId);

    void deleteAssignmentByProjectId(Long projectId);

    void editProjectAssignment(ProjectAssignment projectAssignment);
}
